#ifndef								__IORDER_H__
#	define							__IORDER_H__

#	include							"Protocol.h"
#	include							"byte.h"
#	include							<cstddef>
#	include							<vector>

class								IOrder
{
public:
	virtual ~IOrder() {};

public:
	virtual Protocol				getProtocol() const = 0;
	virtual void 					*getData(size_t) = 0;
	virtual unsigned short			getSenderId() const = 0;
	virtual	size_t					size() const = 0;
	virtual void					pushData(void *, size_t) = 0;
	virtual void					setData(std::vector<byte> *data) = 0;
	virtual void					setSenderId(unsigned short id) = 0;
	virtual byte					*send() = 0;
	virtual void					init() = 0;
};

#endif								// ! __IORDER_H__
